# 1.其他数据类型当成布尔值处理的原则是什么(2分)？
# 正确为True 正确为False
# 2.写出if语句的完整语法（3分）？
# if 表达条件
#     条件成立执行的代码库
# elif 表达条件  上面条件未满足的情况下
#     条件成立执行的代码库
# else:上面条件都不成立执行下面的代码库
# # 3.写出for的完整语法结构（2分）？for循环适用于哪些数据类型（1分）？以及描述for循环语法的执行过程（2分）？
# for1 = [1, 2, 'addada']       # i是临时变量 for1 是要迭代输出的对象 每次循环输出for1的类容,类容没有为止,
# # Print(i)       字符串,数字,列表,字典,元组,都可以遍历
# for i in for1:
#     print(i)
# 4.为什么要使用拆包（1分）？请写出代码简述什么是拆包（4分）？
# 不定长, 参数的个数不确定(可多可少)
#         打包, 使用 元组 或者 字典 将 所有的参数集合到一起
# 定长位置参数打包, 使用 *args
#         def 函数名(*args):
# #             args 将所有的位置参数打包成元组
# #             按关键字分: 不定长关键字参数打包, 使用 ** kwargs
# #
# #             def 函数名(**kwargs):
# #                 kwargs
# #                 将所有的关键字参数打包成了字典
# # 5.函数的定义以及调用的语法（定义2分 调用1分）？
# # def i():  #定义函数
# #     print(1+3)
# # i()#调用函数
# # # 函数名([参数1, 参数2, ...]):
# # #     代码块(函数体)
# # #     封装函数功能的代码
# # # 函数名() 调用函数
# # 6.python的概念是什么？（2分）
# # python的基本概念指的是python的形成以及python是由那些基础的知识点来组成的，也就是说学习python就必须要要去学习并理解这些基本概念
# # 7.写出如何获取字典中指定的键对应的值（4分 一个2分）
# import pip
#
# dict1 = {'name': '叶壮'}
# print(dict1.get('name'))
# print(dict1.items())
# # print(dict1.values())
# # print(dict1.keys())
# # # 8.有一个列表li=[0,1,2,3,4,5,6,7,8,9,10] 如何通过切片得到 [9,7,5,3]？（2分）
# # li = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# # print(li[-2:-9:-2])
# #
# # # 9.面向对象的三大特征是什么（3分）
# # # 分装,继承,多态
# # # 10.请尽可能的详细的描述你对于python面向对象的掌握情况(前两天的知识)，包括概念和语法(写详细,可以以案例的方式)。（40分）
# class Person:
#     # 定义对象方法 - eat
#     def eat(self):
#         # 在对象方法中设置对象属性
#         self.name = '杜金金'
#
#     def fn1(self):
#         self.name = '尚瑞星'
#
#     def fn2(self):
#         del self.name
#
#     def fn3(self):
#         print(self.name)
#
#         class Person:
#             # 定义对象方法
#             def run(self):
#                 print(self)
#                 print('跑')
#
#         # 创建对象
#         p1 = Person()
#         print(p1)
#         # 对象.方法名()
#         p1.run()
#
#         p2 = Person()
#         print(p2)
#         p2.run()
# lass Person:
#     def __init__(self):
#         # 初始化对象属性
#         self.name = '朱梓鑫'
#         self.age = 18
#
#
# # 触发机制:对象创建以后,自动执行这个方法.
# # 作用: 用来初始化对象的属性
# p1 = Person()
# print(p1.name)
# print(p1.age)
#
#
# # 创建对象
# p1 = Person()
# p1.eat()
# # 访问属性
# print(p1.name)
# # # 11.什么是重写？重写后如何调用父类上的方法？（2分)
# # class file1:
# #     def __init__(self,name,age):
# #         self.name = name
# #         self.age = age
# #     def file2(self):
# #         print(self.name)
# #         print(self.age)
# # class file3(file1): #调用父类
# #     def __init__(self,name,age,chana):  #重写父类的属性
# #         super().__init__(age,name)  #调用父类的属性
# #         self.chana = chana
# #     def file4(self):
# #         super().file2()   #调用父类的方法
# #         print(self.chana)
# #
# # # 12.请写出异常捕获的完整语法（4分）
# # try:
# #     return1 = 1 / int(input('输入数字:')) #可能出现异常的代码
# # except(SyntaxError, ZeroDivisionError):   # 异常类型
# #     print('0不能作为除数使用')
# # else:  #没有异常执行的代码
# #     print('输入成功')
# # finally:       #不管有没有异常都会执行
# #     print('我都会执行')
#
#
#
# # 13.请写出模块和包的导入方式（6分）
# # from 包名 inport 模块名或者*(代表导入所有模块)  as给模块写名字
# # print(模块名.资源)
# # 14.什么是pip，pip的常用的命令有哪些？（4分）
# # pip指令是python中自带的包管理工具.不需要安装,安装好了python就可以使用了
# # pip.install 包名 安装包
# # pip.List  查看系统有哪些包
# # pop.uninstall 卸载包
# # pip install --upgrade 包名  升级包
# # 15.什么是单例模式（2分）
# # class Singleton:
# #     # 　类属性
# #     __instance = None
# #
# #     def __new__(cls, *args, **kwargs):
# #         if not cls.__instance:
# #             cls.__instance = super().__new__(cls, *args, **kwargs)
# #         return cls.__instance
# # 16.使用列表推导式得到1-50之间能被3整除的所有的数字的列表（4分）
# list1 = [i for i in range(1,50) if i % 3 == 0]
# print(list1)
# # 17.什么是魔法方法，常见的魔法方法有哪些，分别的调用时机是什么（4分）
# __init__ 初始化对象属性  创建对象以后自动执行这个方法 有共同属性的时候调用
# __str__ 触发机制: 当对象被print打印的时候,触发str方法执行 str方法必须返回字符串类型
# # 作用: 默认print打印对象,输出的是对象的地址.通过str方法可以返回自定义的一个字符串
# __del__ 当程序类存地址被销毁的时候就会触发 在对象销毁的时候做一些操作
# 18.(选做)有如下两张表，查询每个学生的平均成绩。要求显示的列有：学生姓名和平均成绩（5分）
